home *** CD-ROM | disk | FTP | other *** search
/ Tux Racer / Tux Racer.iso / program files / Sunspire Studios / Tux Racer / tuxracer_init.tcl < prev    next >
Encoding:
Text File  |  2001-12-07  |  12.6 KB  |  359 lines

  1. # Tux Racer initialization script
  2.  
  3. #
  4. # Save data directory
  5. set tux_data_dir [pwd]
  6.  
  7. #
  8. # Set up language strings
  9. #
  10. source "language.tcl"
  11.  
  12.  
  13. #
  14. # Useful subroutines
  15. #
  16. proc tux_goto_data_dir {} {
  17.     global tux_data_dir
  18.     cd $tux_data_dir
  19. }
  20.  
  21. proc tux_course_init {} {
  22.     global tux_data_dir
  23.     source "$tux_data_dir/courses/common/courseinit.tcl"
  24.  
  25. proc tux_course_init_v60 {} {
  26.     global tux_data_dir
  27.     source "$tux_data_dir/courses/common/courseinit-v60.tcl"
  28.  
  29. proc loading_refresh_display {} {
  30.     if {[objget :course loading]} {
  31.     objcall :servers:render redraw
  32.     after 50 loading_refresh_display
  33.     }
  34. }
  35.  
  36. proc begin_loading_course {} {
  37.     global ls
  38.     objcall :servers:render set_loading_text \
  39.         [ gs loading ]
  40.     loading_refresh_display
  41. }
  42.  
  43. proc subtract_from_ai { time } {
  44.     foreach child [objget :ai_targets children] {
  45.     set curtime [objget $child time]
  46.     set curtime [expr $curtime-$time]
  47.     objset $child -time $curtime
  48.     }
  49. }
  50.  
  51. # Setup font size table
  52. set lang [tux_get_param language]
  53. if { $lang != "english" } {
  54.     set font_size(huge)    35
  55.     set font_size(big)     30
  56.     set font_size(xxlarge) 25
  57.     set font_size(xlarge)  20
  58.     set font_size(vlarge)  20
  59.     set font_size(large)   16
  60.     set font_size(medium)  14
  61.     set font_size(small)   12
  62.     set font_size(vsmall)  11
  63.     set font_size(xsmall)  11
  64.     set font_size(tiny)    11
  65. } else {
  66.     set font_size(huge)    40
  67.     set font_size(big)     35
  68.     set font_size(xxlarge) 30
  69.     set font_size(xlarge)  25
  70.     set font_size(vlarge)  22
  71.     set font_size(large)   20
  72.     set font_size(medium)  16
  73.     set font_size(small)   14
  74.     set font_size(vsmall)  13
  75.     set font_size(xsmall)  12
  76.     set font_size(tiny)    11
  77. }
  78.  
  79. #
  80. # Load splash screen logo and font first so we can display it
  81. #
  82.  
  83. # Mouse cursor
  84. tux_load_texture mouse_cursor textures/mouse_cursor.png 0
  85. tux_bind_texture mouse_cursor mouse_cursor
  86.  
  87. # Snow Particle
  88. tux_load_texture snow_particle courses/common/snowparticles.png 0
  89. tux_bind_texture snow_particle snow_particle
  90.  
  91. # Splash screen logo
  92. tux_load_texture splash_screen_tr textures/splash_tr.png 0
  93. tux_load_texture splash_screen_br textures/splash_br.png 0
  94. tux_load_texture splash_screen_tl textures/splash_tl.png 0
  95. tux_load_texture splash_screen_bl textures/splash_bl.png 0
  96.  
  97. tux_bind_texture splash_screen_tr splash_screen_tr
  98. tux_bind_texture splash_screen_br splash_screen_br
  99. tux_bind_texture splash_screen_tl splash_screen_tl
  100. tux_bind_texture splash_screen_bl splash_screen_bl
  101.  
  102. if { $lang == "english" } {
  103.     tux_load_texture trebuchet_white fonts/trebuchet_white.png 0
  104.     tux_load_font -name trebuchet_white -file fonts/trebuchet.tfm \
  105.         -texture trebuchet_white
  106. } else {
  107.     tux_load_texture trebuchet_white fonts/trebuchet_white_i18n.png 0
  108.     tux_load_font -name trebuchet_white -file fonts/trebuchet_i18n.tfm \
  109.         -texture trebuchet_white
  110. }
  111.  
  112. tux_bind_font -binding splash_subtext -font trebuchet_white \
  113.     -size $font_size(large)
  114. tux_bind_font -binding speed_mode_text -font trebuchet_white -size $font_size(tiny) -colour {  1 1 1 1 }
  115.     
  116.  
  117. #
  118. # Read course index
  119. #
  120. objset :modes:splash_screen -loading_text \
  121.     [ gs loading_course_index ]
  122. source courses/course_idx.tcl
  123.  
  124. #
  125. # Read characters
  126. #
  127. source characters/character_init.tcl
  128.  
  129. #
  130. # Set Up Music
  131. #
  132.  
  133. # Functions
  134. proc select_racing_music { num } {
  135.     global racing_music_loaded
  136.     if { ! $racing_music_loaded } {
  137.     return;
  138.     }
  139.     tux_bind_music intro racing$num -1
  140.     tux_bind_music racing racing$num -1
  141.     tux_bind_music paused racing$num -1
  142.     tux_bind_music game_over racing$num -1
  143. }
  144.  
  145. objset :modes:splash_screen -loading_text \
  146.     [ gs loading_music ]
  147.  
  148. # Splash & Start screens
  149. if { [tux_load_music start_screen music/intro.mp3] } {
  150.     tux_bind_music splash_screen start_screen -1
  151.     tux_bind_music start_screen start_screen -1
  152.     tux_bind_music loading start_screen -1
  153. }
  154.  
  155. if { [tux_load_music credits music/credits.mp3] } {
  156.     tux_bind_music credits_screen credits -1
  157. }
  158.  
  159. # Music played during race
  160. set racing_music_loaded 0
  161. if { [tux_load_music racing1 music/racing.mp3] &&
  162.      [tux_load_music racing2 music/racing2.mp3] } {
  163.     objcall :music:racing1 incr_ref_count
  164.     objcall :music:racing2 incr_ref_count
  165.     set racing_music_loaded 1
  166.     select_racing_music 2
  167. }
  168.  
  169.  
  170. objset :modes:splash_screen -loading_text \
  171.     [ gs loading_fonts ]
  172.  
  173.  
  174. # Fonts
  175.  
  176. if { $lang == "english" } {
  177.     if { [tux_get_param use_hires_fonts] } {
  178.     tux_load_texture trebuchet_yel_blk fonts/trebuchet_yel_blk_512.png 0
  179.     } else {
  180.     tux_load_texture trebuchet_yel_blk fonts/trebuchet_yel_blk.png 0
  181.     }
  182.     tux_load_font -name trebuchet_yel_blk -file fonts/trebuchet.tfm \
  183.               -texture trebuchet_yel_blk
  184. } else {
  185.     if { [tux_get_param use_hires_fonts] } {
  186.     tux_load_texture trebuchet_yel_blk fonts/trebuchet_yel_blk_i18n_512.png 0
  187.     } else {
  188.     tux_load_texture trebuchet_yel_blk fonts/trebuchet_yel_blk_i18n.png 0
  189.     }
  190.     tux_load_font -name trebuchet_yel_blk -file fonts/trebuchet_i18n.tfm \
  191.               -texture trebuchet_yel_blk
  192. }
  193.  
  194. tux_bind_font -binding time_label -font trebuchet_yel_blk -size 20
  195. tux_bind_font -binding time_value -font trebuchet_yel_blk -size 30
  196. tux_bind_font -binding time_hundredths -font trebuchet_yel_blk -size 20
  197. tux_bind_font -binding place_label -font trebuchet_yel_blk -size 20
  198. tux_bind_font -binding place_value -font trebuchet_yel_blk -size 30
  199. tux_bind_font -binding trick_bonus -font trebuchet_yel_blk -size 30
  200. tux_bind_font -binding diff_time_value -font trebuchet_yel_blk -size 15
  201. tux_bind_font -binding herring_count -font trebuchet_yel_blk -size 30
  202. tux_bind_font -binding player_name -font trebuchet_yel_blk -size 25
  203. tux_bind_font -binding speed_digits -font trebuchet_yel_blk -size 35
  204. tux_bind_font -binding speed_units -font trebuchet_yel_blk -size 20
  205. tux_bind_font -binding version -font trebuchet_yel_blk -size $font_size(tiny) -colour {  1 1 1 1 }
  206. tux_bind_font -binding fps -font trebuchet_yel_blk -size $font_size(large) 
  207.  
  208. tux_bind_font -binding button_label -font trebuchet_white -size $font_size(xxlarge)
  209. tux_bind_font -binding button_label_hilit -font trebuchet_white -size $font_size(xxlarge) \
  210.               -colour { 1.00 0.89 0.01 1.0 }
  211. tux_bind_font -binding button_label_disabled -font trebuchet_white -size $font_size(xxlarge) \
  212.               -colour { 1.0 1.0 1.0 0.5 }
  213. tux_bind_font -binding menu_label -font trebuchet_white -size $font_size(xxlarge)
  214. tux_bind_font -binding listbox_item -font trebuchet_white -size $font_size(vlarge) \
  215.               -colour { 1.00 0.89 0.01 1.0 }
  216. tux_bind_font -binding event_and_cup_label -font trebuchet_white -size $font_size(vlarge) 
  217. tux_bind_font -binding race_description -font trebuchet_white -size $font_size(medium)
  218. tux_bind_font -binding race_requirements_label -font trebuchet_white -size $font_size(vsmall) \
  219.               -colour { 1.00 0.95 0.01 1.0 }
  220. tux_bind_font -binding race_requirements -font trebuchet_white -size $font_size(vsmall)
  221. tux_bind_font -binding cup_status -font trebuchet_white -size $font_size(medium) \
  222.               -colour { 1.00 0.89 0.01 1.0 }
  223. tux_bind_font -binding loading -font trebuchet_yel_blk -size $font_size(xxlarge)
  224. tux_bind_font -binding loading_subtext -font trebuchet_yel_blk -size $font_size(large)
  225. tux_bind_font -binding race_over -font trebuchet_yel_blk -size $font_size(huge)
  226. tux_bind_font -binding race_over_h2h -font trebuchet_yel_blk -size $font_size(large)
  227. tux_bind_font -binding cup_won -font trebuchet_yel_blk -size $font_size(xxlarge)
  228. tux_bind_font -binding race_stats -font trebuchet_yel_blk -size $font_size(xlarge)
  229. tux_bind_font -binding race_stats_label -font trebuchet_yel_blk -size $font_size(xlarge)
  230. tux_bind_font -binding race_stats_h2h -font trebuchet_yel_blk -size $font_size(small)
  231. tux_bind_font -binding race_stats_label_h2h -font trebuchet_yel_blk -size $font_size(small)
  232. tux_bind_font -binding race_result_msg -font trebuchet_yel_blk -size $font_size(xlarge)
  233. tux_bind_font -binding paused -font trebuchet_yel_blk -size $font_size(huge)
  234.  
  235. tux_bind_font -binding credits_h1 -font trebuchet_yel_blk -size $font_size(xxlarge)
  236. tux_bind_font -binding credits_h2 -font trebuchet_yel_blk -size $font_size(large)
  237. tux_bind_font -binding credits_text -font trebuchet_white -size $font_size(large)
  238. tux_bind_font -binding credits_text_small -font trebuchet_white -size $font_size(small)
  239.  
  240. tux_bind_font -binding flythru_help_text -font trebuchet_yel_blk -size $font_size(medium)
  241.  
  242. tux_bind_font -binding console_text -font trebuchet_white -size $font_size(vsmall) \
  243.               -colour { 0.30 0.10 0.10 0.5 }
  244.  
  245. tux_bind_font -binding console_stext -font trebuchet_white -size $font_size(tiny) \
  246.               -colour { 0.30 0.10 0.10 0.5 }
  247.  
  248. tux_bind_font -binding configure_menu_label -font trebuchet_white -size $font_size(large)
  249. tux_bind_font -binding configure_listbox_item -font trebuchet_white -size $font_size(xsmall) \
  250.     -colour { 1.00 0.89 0.01 1.0 }
  251.  
  252. tux_bind_font -binding small_button_label -font trebuchet_white -size $font_size(large)
  253. tux_bind_font -binding small_button_label_hilit -font trebuchet_white \
  254.     -size $font_size(large) -colour { 1.00 0.89 0.01 1.0 }
  255. tux_bind_font -binding small_button_label_disabled -font trebuchet_white \
  256.     -size $font_size(large) -colour { 1.0 1.0 1.0 0.5 }
  257.  
  258. tux_bind_font -binding ui_title -font trebuchet_yel_blk -size $font_size(xxlarge)
  259. tux_bind_font -binding high_score_title -font trebuchet_white -size $font_size(xsmall)
  260. tux_bind_font -binding high_score_item -font trebuchet_white -size $font_size(xsmall) \
  261.     -colour { 1.00 0.89 0.01 1.0 }
  262.  
  263. # HUD
  264. objset :modes:splash_screen -loading_text \
  265.     [ gs loading_hud_textures ]
  266.  
  267. tux_load_texture herring_icon textures/herringicon.png 0
  268. tux_bind_texture herring_icon herring_icon
  269.  
  270. tux_load_texture gauge_outline textures/gaugeoutline.png 0
  271. tux_bind_texture gauge_outline gauge_outline
  272.  
  273. tux_load_texture gauge_energy_mask textures/gaugeenergymask.png 0
  274. tux_bind_texture gauge_energy_mask gauge_energy_mask
  275.  
  276. tux_load_texture gauge_speed_mask textures/gaugespeedmask.png 0
  277. tux_bind_texture gauge_speed_mask gauge_speed_mask
  278.  
  279. tux_load_texture course_map_outline textures/course_map_outline.png 0
  280. tux_bind_texture course_map_outline course_map_outline
  281.  
  282. tux_load_texture course_map_mask textures/course_map_mask.png 0
  283. tux_bind_texture course_map_mask course_map_mask
  284.  
  285.  
  286. # UI widgets
  287. objset :modes:splash_screen -loading_text \
  288.     [ gs loading_ui_textures ]
  289.  
  290. tux_load_texture listbox_arrows textures/listbox_arrows.png 0
  291. tux_bind_texture listbox_arrows listbox_arrows
  292. tux_bind_texture textarea_arrows listbox_arrows
  293.  
  294. tux_load_texture mirror_button textures/mirror_button.png 0
  295. tux_bind_texture mirror_button mirror_button
  296.  
  297. tux_load_texture conditions_button textures/conditions_button.png 0
  298. tux_bind_texture conditions_button conditions_button
  299.  
  300. tux_load_texture snow_button textures/snow_button.png 0
  301. tux_bind_texture snow_button snow_button
  302.  
  303. tux_load_texture wind_button textures/wind_button.png 0
  304. tux_bind_texture wind_button wind_button
  305.  
  306. tux_load_texture slider_start textures/slider_start.png 0
  307. tux_bind_texture slider_start slider_start
  308.  
  309. tux_load_texture slider_knob textures/slider_knob.png 0
  310. tux_bind_texture slider_knob slider_knob
  311.  
  312. tux_load_texture slider_knob_sel textures/slider_knob_sel.png 0
  313. tux_bind_texture slider_knob_sel slider_knob_sel
  314.  
  315. tux_load_texture slider_end textures/slider_end.png 0
  316. tux_bind_texture slider_end slider_end
  317.  
  318. tux_load_texture slider_bar textures/slider_bar.png 0
  319. tux_bind_texture slider_bar slider_bar
  320.  
  321. tux_load_texture checkbox_box textures/checkbox_box.png 0
  322. tux_bind_texture checkbox_box checkbox_box
  323.  
  324. tux_load_texture checkbox_box_sel textures/checkbox_box_sel.png 0
  325. tux_bind_texture checkbox_box_sel checkbox_box_sel
  326.  
  327. tux_load_texture checkbox_check textures/checkbox_check.png 0
  328. tux_bind_texture checkbox_check checkbox_check
  329.  
  330. # Menu decorations
  331. tux_load_texture menu_bottom_left textures/menu_bottom_left.png 0
  332. tux_bind_texture menu_bottom_left menu_bottom_left
  333.  
  334. tux_load_texture menu_bottom_right textures/menu_bottom_right.png 0
  335. tux_bind_texture menu_bottom_right menu_bottom_right
  336.  
  337. tux_load_texture menu_top_left textures/menu_top_left.png 0
  338. tux_bind_texture menu_top_left menu_top_left
  339.  
  340. tux_load_texture menu_top_right textures/menu_top_right.png 0
  341. tux_bind_texture menu_top_right menu_top_right
  342.  
  343. tux_load_texture menu_title textures/menu_title.png 0
  344. tux_bind_texture menu_title menu_title
  345.  
  346. # Tux life icon
  347. tux_load_texture tux_life textures/tuxlife.png 0
  348. tux_bind_texture tux_life tux_life
  349.  
  350. #
  351. # Models
  352. #
  353. objset :ai_resources:ai_target_model \
  354.     -filename models/arrow.obj.strip \
  355.     -backface_culling 0 
  356.